package com.itheima.service;

import com.itheima.entity.PageResult;
import com.itheima.entity.QueryPageBean;
import com.itheima.entity.Result;
import com.itheima.pojo.Menu;
import com.itheima.pojo.User;

import java.util.List;
import java.util.Map;

public interface UserService {

    User findByUsername(String username);

    List<Map<String, Object>> findAllHealthManager();

    Integer findByMemberId(Integer memberId);

    /* =========================================================================================================== */

    /**
     * 1.根据用户权限查询不同菜单列表
     *
     * @param username
     * @return
     */
    List<Menu> getMenuByUsername(String username);

    /**
     * 2.用户列表分页+模糊查询
     *
     * @param pageBean
     * @return
     */
    PageResult getUserList(QueryPageBean pageBean) throws Exception;

    /**
     * 3.添加系统用户信息
     *
     * @param roleIds
     * @param user
     */
    Result create(Integer[] roleIds, User user);

    /**
     * 4.根据用户id查询用户信息以及关联的角色信息
     *
     * @param id
     * @return
     */
    Map<String, Object> getUserById(Integer id);

    /**
     * 5.更新用户数据
     *
     * @param roleIds
     * @param user
     * @return
     */
    Result update(Integer[] roleIds, User user);

    /**
     * 6.删除用户数据
     *
     * @param id
     */
    void deleteById(Integer id);

    /**
     * 7.用户登录次数统计
     */
    void loginStatistics(String username);

}
